package com.edfu.core.commons.service.api;

import java.util.List;
import java.util.Set;

import org.springframework.security.access.prepost.PreAuthorize;

import com.edfu.core.commons.beans.Category;
import com.edfu.core.commons.beans.EduObjectType;
import com.edfu.core.commons.beans.Notification;

public interface INotificationService {
	
	@PreAuthorize("isAnonymous()")
    public void addInterestsNotification(Notification notification);
	
	@PreAuthorize("isAnonymous()")
    public void addInterestsNotification(long objectId, EduObjectType objectType, Category category);
	
	@PreAuthorize("isAnonymous()")
    public void addInterestsNotification(long objectId, EduObjectType objectType, Set<Category> category);
    
    @PreAuthorize("isAnonymous()")
    public void addDeletedInterestsNotification(long interestsNotificationId, String userId);
    
    @PreAuthorize("isAnonymous()")
    public void deleteInterestsNotification(long objectId, EduObjectType objectType);
    
    @PreAuthorize("isAnonymous()")
    public List<Notification> getActiveNotifications(String userId);
    
    @PreAuthorize("isAnonymous()")
    public List<Notification> getRecentContent(int size);

}
